home *** CD-ROM | disk | FTP | other *** search
- '
- 'PWAD runner source code, supplied with DMLDFLAY v1.5+
- '-----------------------------------------------------
- 'Originally coded by Paul Pollack/GamePlay Magazine/DragonHawk Productions
- 'You may use this source code without restrictions (with the one exception
- 'that you may NOT use it as a runner for PWAD's that work with the shareware
- 'version of Doom), although I cannot be held responsible for any damage that
- 'may result from use of your PWAD. I also ask that if you decide to use
- 'this as your PWAD runner, that you mention my name somewhere in the credits.
- '
- '
- DECLARE SUB intro ()
- DEFINT A-Z
- ' $INCLUDE: 'QB.BI'
- DECLARE SUB hidemouse ()
- DECLARE SUB SHOWMOUSE ()
- DECLARE SUB GETMOUSECORD (K%, K3%, M4%)
- DECLARE SUB STARTMOUSE ()
- DIM SHARED Inregs AS RegType, Outregs AS RegType
- OPEN "rundata.dat" FOR INPUT AS #1
- LINE INPUT #1, a$
- LINE INPUT #1, b$
- LINE INPUT #1, c$
- LINE INPUT #1, d$
- LINE INPUT #1, e$
- LINE INPUT #1, f$
- LINE INPUT #1, g$
- LINE INPUT #1, h$
- CLOSE
- CLS
- WIDTH 80, 50
- ' To successfully run this RUNNER, you need ANSI.SYS or an imitation
- ' ANSI driver; you may wish to include a freeware command line ANSI driver
- ' in your PWAD and include a line like the following one. (Note that
- ' it is commented out; please do not uncomment it unless you find a command
- ' line driver and change the line accordingly:
- ' SHELL "PCANSI"
- RANDOMIZE TIMER
- CLS
- SHELL "mode con lines=50"
- WIDTH 80, 50
- 317 N = INT(RND * 10)
- IF N = 0 OR N = 10 THEN 317
- IF N = 1 THEN SHELL "type DOOM01.DAT" 'Those ANSI files are pretty
- IF N = 2 THEN SHELL "type DOOM02.DAT" 'nifty, for ANSI.
- IF N = 3 THEN SHELL "type DOOM03.DAT"
- IF N = 4 THEN SHELL "type DOOM04.DAT"
- IF N = 5 THEN SHELL "type DOOM05.DAT"
- IF N = 6 THEN SHELL "type DOOM06.DAT"
- IF N = 7 THEN SHELL "type DOOM07.DAT"
- IF N = 8 THEN SHELL "type DOOM08.DAT"
- IF N = 9 THEN SHELL "type DOOM09.DAT"
- COLOR 15 'Change this depending on what color you like
- 13 Z = INT(RND)
- 14 IF Z > .5 THEN Z = 1 ELSE Z = 0
- LOCATE 7, INT(28.5 - .5 * (LEN(a$))) + Z: PRINT "CUSTOM PWAD RUNNER FOR " + a$'SELF-EXPLANATORY
- 320 WHILE INKEY$ = "": WEND
- CLS
- COLOR 15
- DEF SEG = &HB800
- 10 'All the way from this line 'till line 1231 Runner is setting up
- 'the screen
- J = INT(RND * 10)
- IF J = 0 OR J = 10 OR J = N THEN 10
- WIDTH 80, 50
- IF J = 1 THEN SHELL "type DOOM01.DAT" 'Those ANSI files are pretty
- IF J = 2 THEN SHELL "type DOOM02.DAT" 'nifty, for ANSI.
- IF J = 3 THEN SHELL "type DOOM03.DAT"
- IF J = 4 THEN SHELL "type DOOM04.DAT"
- IF J = 5 THEN SHELL "type DOOM05.DAT"
- IF J = 6 THEN SHELL "type DOOM06.DAT"
- IF J = 7 THEN SHELL "type DOOM07.DAT"
- IF J = 8 THEN SHELL "type DOOM08.DAT"
- IF J = 9 THEN SHELL "type DOOM09.DAT"
- 100
- LOCATE 13, 1
- FOR h = 1 TO 25
- FOR g = 1 TO 80: PRINT " "; : NEXT
- NEXT h
- STARTMOUSE: SHOWMOUSE
- LOCATE 13, 1
- SHELL "TYPE runner.dat"
- LOCATE 22, 43: IF b = 0 THEN PRINT " OFF" ELSE PRINT " ON"
- LOCATE 24, 1
- LOCATE 36, 26
- COLOR 10 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
- LOCATE 16, INT(40 - .5 * (LEN(b$))): PRINT b$
- COLOR 9 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
- LOCATE 17, INT(40 - .5 * (LEN(c$))): PRINT c$
- COLOR 15 'REPLACE THIS WITH THE COLOR YOU WOULD LIKE
- LOCATE 24, INT(40 - .5 * (LEN(d$))): PRINT d$
- LOCATE 13, 1
- SHELL "TYPE RUNNER.DAT"
- 1231
- LOCATE 36, 26
- COLOR 1
- PRINT CHR$(177);
- COLOR 15
- LOCATE 36, 28
- PRINT "CLICK ON YOUR CHOICE"
- DO
- GETMOUSECORD K, x, Y
- 'LOCATE 1, 1: PRINT K, x, Y
- 'Nifty place for a comment, eh? This is the heart of RUNNER, where
- 'it actually loads the PWAD
- IF Y = 26 AND x < 59 AND x > 18 AND K = 1 THEN a = 1
- IF Y = 27 AND x < 58 AND x > 19 AND K = 1 THEN a = 2
- IF Y = 28 AND x < 58 AND x > 18 AND K = 1 THEN a = 3
- IF Y = 29 AND x < 58 AND x > 18 AND K = 1 THEN a = 4
- IF Y = 30 AND x < 56 AND x > 20 AND K = 1 THEN a = 5
- IF Y = 31 AND x < 55 AND x > 22 AND K = 1 THEN a = 6
- IF Y = 32 AND x < 61 AND x > 16 AND K = 1 THEN a = 7
- COLOR 9
- IF a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5 THEN WIDTH 80, 25
- IF a = 1 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -nomonsters -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: END: a = 7: GOTO 12
- IF a = 2 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 3 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 2 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 4 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 4 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 5 AND b = 0 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 6 -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 1 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -respawn -nomonsters -warp " + h$: PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 2 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 1 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 3 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 2 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 4 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 4 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 5 AND b = 1 THEN CLS : PRINT "Loading...": SHELL e$ + " -file " + f$ + " -skill 6 -respawn -warp " + h$: PRINT : PRINT TAB(INT(40 - .5 * LEN(g$))); g$: WHILE INKEY$ = "": WEND: a = 7: GOTO 12
- IF a = 6 THEN b = -b + 1: a = 0: GOTO 100
- 12 IF a = 7 THEN CLS : WHILE INKEY$ <> "": WEND: SCREEN 9: SCREEN 0: SYSTEM
- LOOP: hidemouse
-
- SUB GETMOUSECORD (K%, M3%, M4%)
- Inregs.ax% = 3
- CALL INTERRUPT(&H33, Inregs, Outregs)
- M3% = Outregs.cx% / 8
- M4% = (Outregs.dx% + 1) / 8
- K% = Outregs.bx%
- END SUB
-
- SUB hidemouse
- Inregs.ax% = 2
- CALL INTERRUPT(&H33, Inregs, Outregs)
- END SUB
-
- SUB SHOWMOUSE
- Inregs.ax% = 1
- CALL INTERRUPT(&H33, Inregs, Outregs)
- END SUB
-
- SUB STARTMOUSE
- Inregs.ax% = 0
- CALL INTERRUPT(&H33, Inregs, Outregs)
- MouseInitialize% = Outregs.ax%
- END SUB
-
-